In a virtual reality (VR) system, a user interacts with a digitally simulated virtual environment designed to emulate characteristics of the real world. In particular, the VR system may include sensors to detect input from the user, e.g., movements, voice, eye gaze, etc., and also generate output for the user, e.g., stereoscopic imagery, audio, tactile feedback, etc., to create the sensation that the user is “present” in and interacting with the virtual environment.
VR systems may be utilized for a wide variety of applications, including providing users with entertainment and/or informative content. VR systems may also serve as an interface between human users and non-VR systems, such as shopping or social networking applications. For example, a gesture made by a user of a VR system may be interpreted as a command to perform a task in a non-VR system, such as adding a friend on a social network, performing a search on a submitted query, making purchases on a shopping website, etc. To facilitate the interaction of VR system modules and non-VR system modules, it would be desirable to provide a flexible unified computational platform supporting VR and non-VR module types.
Another key feature of state-of-the-art VR systems will be their ability to provide both breadth and depth of detail for each virtual environment. For example, an integrated VR system may provide a diverse variety of virtual experiences, e.g., simulating the details of walking down a busy street, entering the interior of a virtual store with diverse offerings for purchase, driving a virtual car, etc. As each virtual experience is expected to fully immerse the user in the simulated environment, the unified computational platform will also need to flexibly accommodate the complex details of diverse VR experiences, as well as manage the transitions between VR experiences for the user.
Yet another feature of advanced VR systems will be their ability to allow interactions between multiple users in “joint” VR environments. For example, multiple users will have the capability to perceive each other's presence and actions in a single joint environment, thus allowing for collaboration amongst the users on joint tasks.
To meet the aforementioned requirements, it would be desirable to provide flexible and versatile techniques for designing a unified computational platform for use in advanced virtual reality systems.